Sinon
- spy: 原始的函式依然會被呼叫
- stub: 原始函式不會被呼叫
spy
import { spy } from 'sinon'
class Student {
study() {
console.log('study')
}
}
const student = new Student()
// 建立 student.study() 的 spy
const studySpy = spy(student, 'study')
// 呼叫後 spy 都會記錄資訊
student.study()
// 用 spy 檢視資訊
console.log(studySpy.callCount) // 1
// 拆除 spy
studySpy.restore()
student.study()
console.log(studySpy.callCount) // 維持 1